Various methods have been developed for optically reading data or encoded symbols such as bar code labels. Bar codes are used commercially in many applications, including the identification of retail products at the point of sale, control of inventories, and package identification.
Bar codes typically consist of a series of parallel light and dark rectangular areas of varying widths. The light areas are often referred to as "spaces" and the dark areas as "bars". In many bar code symbologies, the bars and spaces are comprised of one or more smaller components called "modules". Light or dark modules are located adjacently to form larger spaces and bars of varying widths. Different widths of bars and spaces define different characters in a particular bar code symbology. A module is the narrowest element for a given symbology; thus, a bar or space comprised of a single module would have the narrowest possible width.
A bar code label may be read by a scanner which detects reflected and/or refracted light from the bars and spaces comprising the characters. One common method of illuminating the bar code label is by use of a scanning laser beam, in which case a beam of light sweeps across the bar code label and an optical detector detects the reflected light. The detector generates an electrical signal having an amplitude determined by the intensity of the collected light. Another method for illuminating the bar code label is by use of a uniform light source with the reflected light detected by an array (commonly called a charge-coupled device or CCD) of optical detectors connected to an analog shift register. In such a technique, as with a scanning laser, an electrical signal is generated having an amplitude determined by the intensity of the collected light. In either the scanning laser or CCD technique, the amplitude of the electrical signal has one level for dark bars and a second level for light spaces. As the label is scanned, positive-going and negative-going transitions in the electrical signal occur, signifying transitions between bars and spaces. Techniques are known for detecting edges of bars and spaces by detecting the transitions of the electrical signal. Techniques are also known for determining the widths of bars and spaces based on the relative location of the detected edges and decoding the information represented by the bar code.
In order to scan a bar code, the bar coded items may be moved manually in front of the scanner or automatically on a moving conveyer belt. Alternatively, the scanner may be held by an operator and directed at a bar code. Some bar code labels may be "truncated" (that is, have short bars relative to the length of the label). Existing scanning devices require careful operation to attain a high probability of a successful read and are difficult to use with truncated labels because of the difficulty of attaining proper orientation of the bar code label with respect to the scanner. Randomly oriented items on a conveyer belt must have very long bars relative to the length of the code in order to have a high probability of being read.
Handheld single line scanners, either laser or CCD, require that an operator aim and orient the scanner relative to the bar code so that the scan line is substantially perpendicular to the bar code edges. Such operation requires some care on the part of the operator and reduces productivity. Furthermore, these devices are sensitive to label defects, as detection of bar and space edges is typically done along a single narrow scan line. To maximize the productivity of the operator and minimize stresses due to repetitive motions of the operator's body, and to minimize sensitivity to label defects, it is therefore desirable to read bar codes which may be at any orientation relative to the scanning device.
Existing point of sale scanning systems typically require an operator to handle each item (or handle a portable scanner) in order to orient the item to the scanner for scanning. A conveyer belt system may be used to reduce the amount of effort required. Current conveyer systems, however, have difficulty scanning items which are labeled on the bottom surface. Consequently, the operator either must position the item so the bar code is not on the bottom, or must take each item from a feed conveyer, scan it, and place it on a takeaway conveyer. Existing systems generally do not allow scanning of all surfaces of the packages, requiring the operator to position the packages so the bar code is on the surfaces which are scanned.
Various methods have been used to attempt to read a bar code label at any orientation to the scanner in a minimum of passes. Thus, multi-line or complex-pattern laser scanners exist which can read bar codes over a range of orientations. In general, these devices utilize pattern-forming mirrors or holographic beam deflection elements, and are hence larger than other scanners and require more components as the scan pattern complexity increases. These scanners typically require a complex mechanism to sweep the laser beam in a predetermined pattern and therefore require additional and costly mechanical parts, increasing proneness to wear.
In another type of scanner, a two-dimensional array of CCD elements is used to obtain an entire image of the bar code at one time. However, the drawback of these devices is that large amounts of memory are needed to store the image to be processed, and large amounts of computation are needed to extract the edge location data from the stored image. Further, complicated algorithms are necessary to determine the orientation and characteristics of the bar code label.
Existing area imaging scanners are limited in working range (depth of field), and may require that the operator orient the bar code with the bar edges nearly perpendicular to the raster lines. Some systems increase the working range by using additional hardware to automatically focus the imaging system on the bar coded item, increasing the cost and complexity of the system. Also, existing area imaging scanners generally have a small field of view, requiring the operator to position the bar code to be read within a relatively small area. The small field of view also limits the range of bar code label sizes which may be read for a given combination of imaging sensor and lens.
In certain applications it may be desirable to minimize the physical size of the scanning device. For example, the size and weight of handheld scanners may be minimized to avoid operator fatigue. In fixed applications such as point of sale checkstands, it is advantageous to minimize the amount of space needed inside of or on the checkstand to mount and operate the scanner. Scanner designs which require mounting within the checkstand increase the expense and inconvenience of installation. Scanners which have excessive hardware components cause operator fatigue in handheld scanners and take up unnecessary room in fixed mountings.
Most existing scanner designs use moving parts to opto-mechanically scan the bar code. The actuator, bearings, and associated drive circuits are typically among the least reliable components in the scanner, and use a significant proportion of the power consumed by the system. It is desirable to increase system reliability and decrease power consumption in order to allow long periods of operation on batteries, or the use of simple, low power, line operated power supplies.